package com.yidu.logisticssystem.dao;

import com.yidu.logisticssystem.entity.LogisticsState;
import com.yidu.logisticssystem.entity.vo.StateVo;
import org.apache.ibatis.annotations.Param;

import javax.swing.plaf.nimbus.State;
import java.util.List;

/**
 * 货运状态(LogisticsState)表数据库访问层
 *
 * @author makejava
 * @since 2021-03-08 16:46:57
 */
public interface LogisticsStateDao {

    /**
     * 根据货运订单查询当前状态
     * @param state
     * @return
     */
    List<LogisticsState> findNo(LogisticsState state);

    /**
     * 根据货运订单查询已完成的状态
     * @param state
     * @return
     */
    List<LogisticsState> findOk(LogisticsState state);
    /**
     * 通过ID查询单条数据
     *
     * @param stateId 主键
     * @return 实例对象
     */
    LogisticsState queryById(Integer stateId);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<LogisticsState> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param logisticsState 实例对象
     * @return 对象列表
     */
    List<LogisticsState> queryAll(LogisticsState logisticsState);

    /**
     * 新增数据
     *
     * @param logisticsState 实例对象
     * @return 影响行数
     */
    int insert(LogisticsState logisticsState);

    /**
     * 批量新增数据（MyBatis原生foreach方法）
     *
     * @param entities List<LogisticsState> 实例对象列表
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<LogisticsState> entities);

    /**
     * 批量新增或按主键更新数据（MyBatis原生foreach方法）
     *
     * @param entities List<LogisticsState> 实例对象列表
     * @return 影响行数
     */
    int insertOrUpdateBatch(@Param("entities") List<LogisticsState> entities);

    /**
     * 修改数据
     *
     * @param logisticsState 实例对象
     * @return 影响行数
     */
    int update(LogisticsState logisticsState);

    /**
     * 修改数据
     *
     * @param logisticsState 实例对象
     * @return 影响行数
     */
    int updateWay(LogisticsState logisticsState);

    /**
     * 通过主键删除数据
     *
     * @param stateId 主键
     * @return 影响行数
     */
    int deleteById(Integer stateId);


    /**
     * 根据地址查询全部订单
     * @param vo
     * @return
     */
    List<StateVo> selecthyd(StateVo vo);

    /**
     * 根据地区查询全部发货订单
     * @param areaId
     * @return
     */
    List<StateVo> selectfahuo(StateVo areaId);


   int  updatefahuo(String[] id);


    int  updateps(String[] id);

    int  updatesd(String[] id);

    /**
     * 运输状态单
     * @param list
     * @return
     */
    int insertyszt(List<LogisticsState> list);



    /**
     * 搜索收货地址
     * @param vo
     * @return
     */
    List<StateVo> selectshdz(StateVo vo);



    List<StateVo> selectkdyps(int stffId);



    Integer updatepsys(String[] id);


    Integer updateyswc(String[] id);


}

